Advances in computing technologies have led to a proliferation of computing devices in modern society. Myriad computing devices having various shapes, sizes, and capabilities have been made available to consumers. For example, consumers may choose from computing devices such as mobile phones, smart phones, tablet computers, e-reader devices, personal computers, media players, gaming devices, set-top-box (“STB”) devices, digital video recorder (“DVR”) devices, Global Positioning System (“GPS”) devices, and other types of computing devices.
The proliferation of computing devices in modern society has challenged designers and developers of graphical user interfaces for the computing devices. For example, the competitive landscapes between manufacturers of computing devices, between providers of applications that run on computing devices, and between providers of services accessed through the computing devices have pushed designers and developers of graphical user interfaces to design and develop graphical user interfaces as efficiently as possible without sacrificing quality. In addition, computing devices of varying computing platforms have different requirements, style guides, and processes for rendering graphical user interfaces, each of which must be considered by designers and developers of graphical user interfaces.
Unfortunately, traditional processes and tools for design and development of graphical user interfaces have not kept pace with the demands placed upon the designers and developers of the graphical user interfaces, especially for designers and developers tasked with design and development of graphical user interfaces for various computing platforms that may have different requirements, style guides, and/or processes for rendering graphical user interfaces. To illustrate, in a traditional design and development process, a designer utilizes a graphical user interface design tool to design a screen layout of graphical elements to be included in a graphical user interface. Once the design is complete, the designer provides information about the screen layout of graphical elements to a developer who is responsible for producing computing code configured to be executed by a computing device to render a graphical user interface that includes the screen layout of graphical elements designed by the designer. Unfortunately, this process is typically time consuming, requires significant manual labor by the designer and the developer, and is fraught with opportunities for error. For instance, the developer typically has to use the information provided by the designer to manually produce computing code for the screen layout. The process must be repeated each time a modification is made to the screen layout.
These problems are exacerbated when a screen layout design is to be integrated into graphical user interfaces to be rendered by computing devices having different computing platforms. In such cases, the developer must manually produce computing code in different languages for the different computing platforms. This is especially time consuming and error prone when the different computing platforms render graphical user interfaces in accordance with different requirements, style guides, and/or processes. Such differences across computing platforms may force a designer and/or developer to spend additional time during design and/or development to ensure that a graphical user interface is appropriately customized for each computing platform. For example, a requirement or style guide for a particular computing platform may specify that a certain graphical element be displayed in a particular way that is different from the way that the graphical element is to be displayed by another computing platform. Such platform-specific requirements and/or style guides typically increase the amount of time and work required to design and develop a graphical user interface for different computing platforms.